\subsection{mover.bash}
\subsubsection{Descripción}
	Este comando se encarga de mover un archivo desde una ubicación a otra. Permite archivos duplicados, moviendo éstos a una carpeta /dup en el directorio destino.

	Puede ser invocado desde línea de comando o bien desde otro comando.

	En caso de invocarlo desde línea de comando se ejecuta de la forma:
	
	{\ttfamily ./mover.bash archivo carpeta\_destino}

	En caso de invocarlo desde otro comando:
	
	{\ttfamily ./mover.bash archivo carpeta\_destino comando\_invocante info\_adicional}

\subsubsection{Tipo}
	Solicitado.
\subsubsection{Lenguaje}
	BASH Scripting.

\subsubsection{Archivo de Input}
\begin{itemize}
	\item Archivo definido en el primer parámetro.
\end{itemize}
\subsubsection{Archivos de Output}
\begin{itemize}
	\item Archivos definido en el segundo parámetro.
	\item Archivo de log del comando que lo invoca. Por ejemplo, si el comando que llama a mover es {\ttfamily detectar.bash}, se grabará en el archivo {\ttfamily detectar.log} el resultado de {\ttfamily mover.bash.}
\end{itemize}

\subsubsection{Parámetros}
\begin{itemize}
	\item Archivo de origen.
	\item Archivo de destino.
	\item Comando invocante, para ser utilizado en el registro.
\end{itemize}
\subsubsection{Opciones}
\begin{itemize}
	\item -
\end{itemize}

%\subsubsection{Invocación}

%\subsubsection{Ejemplo de ejecución}
%{\ttfamily }

\subsubsection{Pasos}
\begin{enumerate}
	\item Verifica que la cantidad de parámetros pasados sea la correcta.
	\begin{enumerate}
		\item Si es incorrecta, se analiza si el llamado a mover.bash fue realizado por un comando o desde linea de comando. En caso que sea de linea de comando, muestra el mensaje de error por pantalla, sino lo graba en el archivo log del comando invocante.
		\item Si es correcta, verifica que los primeros 2 parámetros no sean iguales. Si no son iguales, dependiendo de quién lo invoque, muestra el error en pantalla o lo graba en el archivo de log correspondiente.
		\item Si el directorio destino no existe, informa por pantalla en caso de que el comando sea invocado desde línea de comando, o graba en el log del comando correspondiente el aviso del fracaso de mover.bash informando el motivo.
	\end{enumerate}
	\item Verifica que el archivo que se desea mover no exista en el directorio destino.
	\begin{enumerate}
		\item Si el archivo existe, verifica que exista la carpeta /dup dentro del directorio donde se va a mover el archivo.
		\begin{enumerate}
			\item Si no existe, crea la carpeta /dup/ y mueve el archivo. Informa, en caso de que sea invocado por un comando, en el archivo de log correspondiente el éxito de la operación con el siguiente formato: \\
			{\ttfamily Fecha y hora, Usuario, -MOVER EXITOSO de origen a destino - Solicitado  \\ por comando\_invocante – Información Adicional: parámetro 4.}
			\item El archivo duplicado se mueve con el siguiente nombre: \\
			{\ttfamily <nombre original>.nnn donde nnn es un número secuencial que evita nombres duplicados.}
			\item Si existe, mueve el archivo a dicha carpeta. En el log graba usando el mismo formato que en 2.c.1.
		\end{enumerate}
	\end{enumerate}
	\item Si el archivo no está duplicado, se mueve de origen a destino. Si mover.bash fue invocado por otro comando, se graba en el log correspondiente el resultado exitoso de la operación con el mismo formato que en 2.c.1.
	\item Luego de realizar cada paso, mover.bash devuelve un código de error:
	\begin{itemize}
		\item Código 0 = Mover exitoso.
		\item Código 1 = El directorio destino no existe.
		\item Código 2 = El archivo que se desee mover no existe.
		\item Código 3 = Cantidad de parámetros pasados a mover errónea.
		\item Código 4 = Origen y destino iguales.
	\end{itemize}

